1. Field of the Invention
This invention relates generally to data detection, and, more particularly, to a method and apparatus for pattern matching on single or multiple pattern structures while allowing some components of the overall circuitry to enter into a sleep mode.
2. Description of the Related Art
The proliferation of computer and communications technology has brought many innovations that improve our ability to process information, share information, and retrieve data effectively. Computers that communicate with other devices, such as other network computers, need special protocols and interfaces to effectively send and receive information. These protocols and interfaces demand that the computer be alert at all times, even when not being used, to receive and process any incoming data or to send data. This required vigilance makes the possibility of a realistic low-power mode, or sleep mode, virtually impractical using today's technology.
Computers that are properly enabled for power-saving functions may enter a sleep mode. This facilitates savings in power utilization and equipment wear, as normal operations are suspended for those features and peripherals not in use. In data communication networks, particularly in LAN-type (local area network) applications, computers or other devices could be placed into a low power or a sleep mode, when not in use. There are generally several levels of low power mode, ranging from turning off a few components, to turning off most of the components in the computer. Ideally, when not in use, a majority of the components in the resident computers should be placed into a low power mode. Many networks hold hundreds, or even thousands, of network resident computers that consume large amounts of power as an aggregate. Furthermore, many components in the network resident computer tend to experience less wear when low power mode is utilized.
However, one aspect of a computer that must always be supported, even during sleep mode, is network requests. One example is a computer residing on an Ethernet network system, which is required to monitor and respond to certain types of data packets so that the control points on the network, such as bridges and routers, are aware of their existence. For most network-type applications, certain data packet patterns must be detected, and when found, cause the computer to operate in a normal, full-power mode. Once the computer enters into its normal, full-power mode, it generally processes the captured request-data. Furthermore, the computer remains in its normal mode in order to be alert for a possible retry of the data requests.
One of the problems, caused by network resident computers being left in a low power mode is that they may not be capable of properly processing the many packets of data being sent over the network line. Even though a large number of these packets of data may not be addressed to a particular network computer, that computer must still examine the data and filter out the data that is not addressed to that particular computer. In order for the computer to effectively perform the aforementioned data filtration, a software solution is generally employed. This however, requires that most of the components in the computer, including the processor, be out of the low-power state and be alert enough to run the applicable software.
Elements that control the administration of the network constantly send and receive data. These network administrative elements, such as servers, bridges, and routers, are constantly sending out data packets, and are expecting proper responses from the network resident computers. If network computers do not respond to data packets from the network administrative elements, the network connection to the network computers may be disconnected. Furthermore, the network computer, which did not respond properly, may miss an important data packet, a global message, or an instruction. Thus, the data packet detection and evaluation program must run and monitor data in real time. Since the software must run to receive and process data packets, the processor, memory, and other major components of the computer, cannot be placed into a true low-power mode. Therefore, using software to monitor data packets on network lines is not conducive to extensive use of low-power or sleep mode for major components of network computers.
To receive data packets and process them properly, designers are forced to create networking hardware that effectively cannot enter a low-power or a sleep mode, since the hardware must be electronically alert and running to be able to process data. This causes large amounts of power consumption and considerable wear on the hardware. Even if a sleep mode or a low-power mode were to be implemented, since the hardware would have to wake up every time there was a network data package on the network line, the effect would be such that no substantial power savings could be realized. Therefore, existing network cards contain internal hardware that is designed to operate under the assumption that during normal operations, there will always be power supplied to this card and to the computer. In most network applications, a large number of network computers could be kept in a low-power or a sleep mode for around 12 to 16 hours, which could result in substantial power savings and reduced wear. During this time, it is important that these computers have some mechanism to be able to process data that was addressed to that particular computer, despite being placed into a low-power or a sleep mode.
There is a natural dilemma that occurs due to the need to have network computers able to enter low-power or sleep modes versus the need to enable these computers to be able to process network data packets. On one hand, it is desirable to have the network computer enter a sleep mode as often as possible, for as long as possible. On the other hand, the existence of the real-time network requires that the network computer be able to receive data and global signals. Furthermore, network administrators may want to service the computer during periods of time when they are not in use, which requires the computers to process network data packets.
The problem lies in the fact that with today's technology, it is very difficult to design a machine that detects data packages in a sleep mode, at the same time being able to wake up from its sleep mode based upon data received. If any portion of a computer's detection mechanism is handled by software, when the machine goes into a sleep mode the capabilities of the software terminate. Therefore, a hardware solution that does not to require a great deal of resources from the host computer is needed. Particularly, a hardware solution is needed that can properly interface with the operating system. This will reduce the need to implement sleep mode designs into non-portable custom solutions, such as custom hardware drivers or custom BIOS setup. This hardware solution should interface with the operation of the computer system such that the operating system can shut off certain portions of the computer sequentially, including the primary microprocessor, and still maintain communication and decoding capabilities for network connections. Additionally, the hardware solution should be compact such that it should not require an entire peripheral board. The hardware should be designed such that it can be merged into an existing computer peripheral board, an integrated chip, a programmable logic chip, or an ASIC.
Furthermore, a self-contained hardware circuit that is capable of receiving, processing, and decoding incoming data can make computers, and other types of workstations, work more efficiently. Since incoming data would be handled by the independent hardware circuitry, the computer or other types of workstations will be free to conduct its normal task. This would result in savings of processor, and other peripheral circuitry, utilization thereby allowing efficient usage of resources.
The present invention is directed to overcoming, or at least reducing the effects of, one or more of the problems set forth above.